package br.com.webhomesites.padrao.presenter;

import br.com.webhomesites.padrao.contracts.IEstoqueProdutoPresenter;
import br.com.webhomesites.padrao.view.EstoqueProdutoView;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JOptionPane;

public class EstoqueProdutoPresenterActionListeners {

    static class AlterarActionListener implements ActionListener {

        private EstoqueProdutoPresenter presenter;

        public AlterarActionListener(EstoqueProdutoPresenter presenter) {
            this.presenter = presenter;
        }

        @Override
        public void actionPerformed(ActionEvent evt) {
            presenter.setOperacao(presenter.UPDATE_STRATEGY);
            presenter.habilitarEdicao(true);


            EstoqueProdutoView view = (EstoqueProdutoView) presenter.getView();

        }
    }

    static class CancelarActionListener implements ActionListener {

        private EstoqueProdutoPresenter presenter;

        public CancelarActionListener(EstoqueProdutoPresenter presenter) {
            this.presenter = presenter;
        }

        @Override
        public void actionPerformed(ActionEvent evt) {

            EstoqueProdutoView view = (EstoqueProdutoView) presenter.getView();

            view.clearFields();

            //presenter.habilitarEdicao(false);  


        }
    }

    static class SalvarActionListener implements ActionListener {

        private EstoqueProdutoPresenter presenter;

        public SalvarActionListener(EstoqueProdutoPresenter presenter) {
            this.presenter = presenter;
        }

        @Override
        public void actionPerformed(ActionEvent evt) {
            presenter.getOperacao().execute();
            //presenter.setOperacao(presenter.UPDATE_STRATEGY);
            //presenter.habilitarEdicao(false);  

            //setUpViewListeners();

            EstoqueProdutoView view = (EstoqueProdutoView) presenter.getView();

           

            System.out.println("Passou na ação salvar!");

        }
    }

    static class InserirActionListener implements ActionListener {

        private EstoqueProdutoPresenter presenter;
        private static int codigoProduto = 0;

        public InserirActionListener(EstoqueProdutoPresenter presenter) {
            this.presenter = presenter;
        }

        @Override
        public void actionPerformed(ActionEvent evt) {
           
        }
    }

    static class RemoverActionListener implements ActionListener {

        private EstoqueProdutoPresenter presenter;

        public RemoverActionListener(EstoqueProdutoPresenter presenter) {
            this.presenter = presenter;
        }

        @Override
        public void actionPerformed(ActionEvent evt) {

            if (JOptionPane.showConfirmDialog((Component) presenter.getView(), "Deseja remover?", "Pergunta", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {

                EstoqueProdutoView view = (EstoqueProdutoView) presenter.getView();

            }
        }
    }

    static class MoedaFocusListener implements FocusListener {

        private EstoqueProdutoPresenter produtoPresenter;

        public MoedaFocusListener(EstoqueProdutoPresenter produtoPresenter) {
            this.produtoPresenter = produtoPresenter;
        }

        @Override
        public void focusGained(FocusEvent e) {
        }

        @Override
        public void focusLost(FocusEvent e) {
           

        }
    }


    static class ItemChangedListener implements ActionListener {

        EstoqueProdutoView view;

        public ItemChangedListener(IEstoqueProdutoPresenter presenter) {

            //this.view = (EstoqueProdutoView) presenter.getView();
        }

        @Override
        public void actionPerformed(ActionEvent e) {
            
        }
    }
    
    static class BuscaAvancadaActionlistener implements ActionListener {
        
        EstoqueProdutoPresenter presenter;

        public BuscaAvancadaActionlistener(EstoqueProdutoPresenter presenter) {
           this.presenter = presenter;
        }
        
        @Override
        public void actionPerformed(ActionEvent e) {
            presenter.buscaAvancada();
        }
        
    }

    static class SairActionListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent evt) {
            System.exit(0);
        }
    }
}
